Image information, be it color or black and white, is commonly derived by scanning, initially at least, in a gray level format containing a large number of levels, e.g.: 256 levels for black and white and more than 16 million (256.sup.3) levels for color, which is usually unprintable by standard printers. In the following, the term "gray level" is used to described such data for both black and white and color applications. Standard printers print in a limited number of levels, either a spot or a no spot in the binary case, or a limited number of levels associated with the spot, for example, four in the quaternary case. Gray level image data may be represented in a very large number of values. Accordingly, it is necessary to reduce gray level image data to a limited number of levels, so that it is printable. Besides gray level image information derived by scanning, certain processing techniques such as those described for example in U.S. Pat. No. 5,226,094 produce gray level pixel values which require conversion to a limited set of legal, or correct output values.
One standard method of converting gray level pixel image data to binary level pixel image data is through the use of dithering or halftoning processes. In such arrangements, over a given area, each gray level pixel within the area is compared to one of a set of preselected thresholds, comprising a matrix of threshold values or a halftone cell. The effect of such an arrangement is that, for an area where the image is gray, some of the thresholds within the matrix will be exceeded, while others are not. In the binary case, the portions of the matrix, or cell elements, in which the thresholds are exceeded are printed as black, while the remaining elements are allowed to remain white. The effect of the distribution of black and white over the cell is integrated by the human eye as gray. Dithering presents problems, however, in that the amount of gray within an original image is not maintained exactly over an area, because the finite number of elements inside each halftone cell only allows the reproduction of a finite number of gray levels. The error arising from the difference between the threshold value and the actual gray level value at any particular cell is simply thrown away. This results in loss of image information. Dithering creates significant image artifacts because it ignores this error completely. A well known example is the banding or false contour artifact that can be seen in smooth image areas. Here, the image input gray level varies smoothly over an area while the halftoned image has to make a transition from one halftone dot (gray level) to another. This transition can clearly be seen as a band running through smooth image parts.
Algorithms that convert gray images to binary or other number of level images attempting to preserve gray density exist, and include among them error diffusion, as taught, for example, in "An Adaptive Algorithm for Spatial Greyscale" by Floyd and Steinberg, Proceedings of the SID 17/2, 75-77 (1976) (hereinafter, "Floyd and Steinberg"). The Floyd and Steinberg method proposes distribution of error determined in the quantization of the nth pixel in scan line l (i.e., pixel n,l), the matrix including pixels at pixel locations corresponding to pixels {(n+1, l), (n-1,l+1), (n,l+1), (n+1,l+1)}. Distribution weighting in accordance with the scheme is given by {(n+1,l)=0.4375, (n-1,l+1)=0.1875 (n,l+1)=0.3125 (n+1,l+1)=0.0625}, or approximated for computer calculation by the set {(n+1,l)=0.5, (n-1,l+1)=0.125 (n,l+1)=0.25 (n+ 1,l+1)=0.125} as taught in U.S. Pat. No. 4,733,230 to Kurihara. See, FIG. 1.
Other, more elaborate methods include the be the error diffusion techniques of U.S. Pat. No. 5,045,952 to Eschbach, U.S. Pat. No. 5,245,678 To Eschbach et al., U.S. Pat. No. 5,243,443 to Eschbach, U.S. Pat. No. 5, 226, 096 to Fan, U.S. patent application Ser. No. 07/800,811 by Eschbach entitled, "Halftoning with Enhanced Dynamic Range and Edge Enhanced Error Diffusion ", and U.S. patent application Ser. No. 08/065,088 by Eschbach et al. entitled, "Method for Quantization of Gray Level Pixel Data with Application of Under Compensated Error Diffusion," all assigned to the same assignee as the present invention. Additional modifications to the error diffusion algorithm taught by Floyd and Steinberg have been proposed, e.g.: a different weighting matrix, as taught, for example, in "A Survey of Techniques for the Display of Continuous Tone Pictures on Bilevel Displays" by Jarvis et al., Computer Graphics and Image Processing, Vol. 5., pp. 13-40 (1976), and in "MECCA--A Multiple-Error Correction Computation Algorithm for Bi-Level Image Hardcopy Reproduction" by Stucki, IBM Res. Rep. RZ1060 (1981). Expanded distribution sets cooperate to reduce worms, at the expense of over-enhancement of edges, more computation and stronger texture orientation in midtone regions. Modifications of the error calculation and weight allocation have been taught, for example, in U.S. Pat. No. 4,924,322 to Kurosawa et. al., U.S. Pat. No. 5,077,812 to Kanno U.S. Pat. No. 4, 339, 774 to Temple, and U.S. Pat. No. 4,955,065, to Ulichney.
Error diffusion attempts to maintain gray by making the conversion from gray pixels to binary or other level pixels on a pixel-by-pixel basis. The procedure examines each pixel with respect to a threshold, and the difference between the gray level pixel value and the threshold is then forwarded to a selected group of neighboring pixels, in accordance with a weighting scheme. The thus corrected image pixels are then considered input to the processing. In this way, the error calculated includes all errors previously made.
An alternative error diffusion procedure is taught in "Images from computers" by M. R. Schroder (sometimes spelled Schroeder) in IEEE Spectrum, pp 66-78 (1969) (hereinafter Schroder). In this method the error is only calculated between the original input pixel and the output, neglecting all previously made errors. This method leads to a poorer gray level representation than Floyd and Steinberg but to higher image contrast. Modifications to the algorithm by Schroder are taught, for example, in "Design of Optimal Filters for Error-Feedback Quantization of Monochrome Pictures" by Jung Guk Kim and Gil Kim, Information Sciences 39, pp 285-298 (1986).
In representing small variations in image appearance with an error diffusion technique, rather large areas of the image are required for the variation to be represented. Thus, while error diffusion is effective in maintaining gray over the image, it requires a rather large area of the image for the error compensation to be effective. Over such areas, undesirable textures and long range patterns, inherent in the distribution of error, may occur. These are often referred to as worms. Such artifacts particularly appear in the highlight and shadow areas of an image rendered with the original coefficient set proposed by Floyd and Steinberg.
In "A Simple Modification of Error Diffusion Weights", IS&T's 46th Annual Conference (May 9-15, 1993), one of the inventors of the present application proposed that worm creation was a result of the lack of error distribution beyond the direction of the diagonal defined by pixel (n,l) and pixel (n-1,l+1). An added distribution to (n-2,l+1) was combined with elimination of distribution to (n+1,l+1).